#pragma once

namespace gfxinterface
{

/*! \brief Virtual base class for vector objects.

  \sa CPGLData
\ingroup IGfxGroup
*/
class CVectorF
{
public:
	//! Destructor
	virtual ~CVectorF(){};
	//! returns the number of elements in the vector (similar to STL size)
	virtual size_t size() const = 0;
	//! clear the vector
	virtual void clear() = 0;
	//! const access to elements
	virtual float at(size_t i)	const = 0;
	//! const access to elements
	float operator [] (size_t i) const		{	return at(i);};
	//! returns index of minimum value
	virtual size_t GetMinIndex() const;
	//! returns indef of maximum value
	virtual size_t GetMaxIndex() const;
	//! computes index of min and max
	virtual void GetMinMaxIndex(size_t& uMin, size_t& uMax) const;
};

};

